Systems for gesture recognition, object recognition, automatic organ detection and other tasks have been developed which use machine learning technology comprising random decision forests. Relatively large amounts of memory are required at training and test times and this makes it extremely difficult to deploy these systems on resource constrained devices such as smart phones or embedded devices.
Large numbers of training examples are typically used to train the decision forests in order to carry out classification tasks such as human body part classification from depth images or gesture recognition from human skeletal data, or regression tasks such as joint position estimation from depth images. The training process is typically time consuming and resource intensive.
There is an ongoing need to improve the accuracy of such machine learning systems and to improve generalization ability. Generalization ability is being able to accurately perform the task in question even for examples which are dissimilar to those used during training. There is also a desire to reduce the amount of time, memory and processing resources needed for training machine learning systems. For example, decision trees grow exponentially with depth and so cannot be trained too deeply on computers with limited memory. Even if large amounts of memory are available during training, the resulting decision trees may be too large to fit at test time on limited memory devices such as smartphones or embedded devices. This in turn limits their accuracy.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known machine learning systems.